void InitList(LinkList *&L){
	L=(LinkList *)malloc(sizeof(LinkList));
	L->next=NULL;
}
void DestroyList(LinkList *&L){
	LinkList *p=L;
	while(L){
		p=L;
		L=L->next;
		free(p);
	}
}
void DispList(LinkList *L){
	LinkList *p;
	int i=0;
	for(p=L->next;p!=NULL;p=p->next){
		printf("%c ",p->data);
	}
	printf("\n");
}
bool ListInsert(LinkList *&L,int i,ElemType e){
	LinkList *p,*q=L;
	int flag=0;
	while(q!=NULL&&flag<i-1){
		q=q->next;
		flag++;
	}
	if(q==NULL||flag!=i-1) return 0;
	else {
	p=(LinkList *)malloc(sizeof(LinkList));
	p->data=e;
	p->next=q->next;
	q->next=p;
	}
	return true;
}
bool ListDelete(LinkList *&L,int i,ElemType &e){
	LinkList *p=L,*q;
	int flag=0;
	while(p!=NULL&&flag<i-1){
		p=p->next;
		flag++;
	}
	if(p->next==NULL||p==NULL||flag!=i-1) return 0;
	q=p->next;
	e=q->data;
	p->next=q->next;
	free(q);
	return true;
}
